import { http } from '@/utils/request'

/**
 * 获取服务对象列表
 * @param request 查询参数，包含：
 *               - page: 当前页码（可选，不传则返回所有数据）
 *               - size: 每页大小（可选）
 *               - objectName: 对象姓名，模糊查询（可选）
 *               - age: 年龄（可选）
 *               - phone: 联系电话（可选）
 *               - address: 地址，模糊查询（可选）
 *               - userId: 用户ID（可选，传入则只返回该用户的服务对象）
 * @return 返回服务对象列表数据，包含：
 *         - total: 总记录数
 *         - list: 服务对象列表数据
 */
export function getServiceObjectList(data) {
  return http.get('/service-objects/list', data)
}

/**
 * 添加服务对象
 * @param serviceObject 服务对象信息，包含：
 *                     - objectName: 对象姓名（必填）
 *                     - phone: 联系电话（必填）
 *                     - age: 年龄（可选）
 *                     - address: 地址（可选）
 *                     - userId: 用户ID（必填）
 *                     - defaultPatient: 是否为默认就诊人（可选，默认0）
 * @return 返回创建的服务对象信息
 */
export function addServiceObject(data) {
  return http.post('/service-objects/add', data)
}

/**
 * 更新服务对象信息
 * @param serviceObject 服务对象信息，包含：
 *                     - id: 服务对象ID（必填）
 *                     - objectName: 对象姓名（可选）
 *                     - phone: 联系电话（可选）
 *                     - age: 年龄（可选）
 *                     - address: 地址（可选）
 *                     - userId: 用户ID（可选）
 *                     - defaultPatient: 是否为默认就诊人（可选，默认0）
 * @return 返回更新结果
 */
export function uptadeServiceObject(data) {
  return http.put('/service-objects/update', data)
}

/**
 * 删除服务对象
 * @param id 服务对象ID
 * @return 返回删除结果
 */
export function deleteServiceObject(data) {
  return http.delete(`/service-objects/del/${data}`)
}

/**
 * 批量删除服务对象
 * @param ids 服务对象ID字符串，多个ID用英文逗号分隔，例如：1,2,3
 * @return 返回批量删除结果
 */
export function batchDeleteServiceObject(data) {
  return http.delete('/service-objects/del/batch', data)
}